//本章学习有限状态机的写法
//模5计数器设计
//制作者：FPGA研究者
//时间：2022年7月3日

module FSM_count5(clk,rst,q,qout);
    input clk,rst;
	 output reg q;
	 output reg [2:0] qout;
always@(posedge clk or posedge rst) begin   //异步
    if(rst) begin
	   qout<=3'b000;
		q<=1'b0;
		end
	else 
	  case(qout)
	    3'b000:begin qout<=3'b001;q<=1'b0;end
		 3'b001:begin qout<=3'b010;q<=1'b0;end
		 3'b010:begin qout<=3'b011;q<=1'b0;end
	    3'b011:begin qout<=3'b100;q<=1'b0;end 	
		 3'b100:begin qout<=3'b000;q<=1'b1;end
		 default:begin qout<=3'b000;q<=1'b0;end
		endcase
	end
	
endmodule